package com.cblz.bd.server.core.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cblz.bd.common.core.entity.BaSecurityDataRecycleLog;
import com.cblz.bd.server.core.entity.vo.BaSecurityDataRecycleLogVO;
import io.vavr.Tuple3;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author yanjieping
 * @description 针对表【ba_security_data_recycle_log(数据回收记录表)】的数据库操作Service
 * @createDate 2022-11-04 15:09:53
 */
public interface BaSecurityDataRecycleLogService extends IService<BaSecurityDataRecycleLog> {

    /**
     * 查询
     *
     * @param wrapperBaSecurityDataRecycleTuple3 搜索条件处理后的信息元祖
     * @return
     */
    Map<String, Object> index(Tuple3<Page<BaSecurityDataRecycleLog>, QueryWrapper<BaSecurityDataRecycleLog>, BaSecurityDataRecycleLog> wrapperBaSecurityDataRecycleTuple3);

    /**
     * 删除数据回收记录信息
     *
     * @param ids id集合
     */
    void delete(List<Serializable> ids);

    /**
     * 根据ID拿到信息
     *
     * @param id id
     * @return
     */
    BaSecurityDataRecycleLogVO getInfoById(Integer id);

    /**
     * 还原删除数据
     *
     * @param ids 数据删除日志id
     */
    void restoreByIds(List<Serializable> ids);

    /**
     * 改变还原状态，更改为已还原
     *
     * @param id 日志id
     */
    void changeRestoreStatusById(Serializable id);
}
